API
运动器可以让弹道或拥有运动能力的生物按照一定的规则进行持续移动。
令单位
unit
向其面朝方向运动1000距离:
skill:mover_line
{
source = unit,
mover = target,
angle = target:get_facing(),
distance = 1000,
speed = 1000,
}
发射一个追踪弹道追踪
unit
:
skill:mover_target
{
source = unit,
model = '弹道单位名称',
target = unit,
speed = 1000,
}
运动分为直线运动与追踪运动2种。直线运动会使单位沿着固定直线轨迹移动;而追踪运动则需要设置一个单位作为追踪目标,使单位不停的靠近目标。
- 一个单位同一时间只能进行一个运动,当单位已有运动却获得新的运动时,将根据优先级决定哪个运动有效:若新的运动优先级大于等于当前运动的优先级,则移除当前运动获得新的运动;否则新的运动添加失败。
- 单位可以同时进行运动与移动,不过目前客户端对这种情况的表现不正确。
- 若单位处于跟随状态,则无法添加运动。
- 通过passive可以设定是否是主动运动:主动运动会使运动单位的朝向始终朝向运动方 向,且当运动单位拥有定身行为限制时将无法进行主动运动。
- 之前animation_point可以修正运动起点,让弹道看起来是从“武器”或“手部”发射,而不是从身体中央发射。现在该字段已废弃,远程普攻会从SpellData表里的projectile_point字段进行修正,一般技能和mover暂时不支持。
- 运动可能会创建失败,你需要判空后再使用它。
创建
mover_line
直线运动
- 参数
- data (table) - 运动属性
- 返回
- mover (mover) - 运动对象
local mover = skill:mover_line
{
source = unit,
mover = unit,
}
mover_target
追踪运动
- 参数
- data (table) - 运动属性
- 返回
- mover (mover) - 运动对象
local mover = skill:mover_target
{
source = unit,
mover = unit,
target = unit,
}
属性
运动的属性需要在创建时作为参数传入。
source
运动来源(unit)
skill
关联技能(skill)
会被设置为创建时使用的技能对象,不需要再次设置。
target
目标(point/unit)
如果是追踪运动,那么这个值的类型必须是(unit)。如果是直线运动,那么这是个可选参数, 会在angle与distance中用到这个值。
mover
运动单位(unit)
进行运动的单位。mover与model这2个参数需要设置其一,运动才能创建成功。
model
单位名(string)
创建一个临时单位作为运动单位,当运动结束后该单位会被移除。mover与model这2个参数需要设置其一,运动才能创建成功。
start
起点(point)
如果不填,则使用mover的位置或source的位置作为起点。
angle
方向(number)
运动的初始方向,若不填则为运动单位到target的方向。